package com.ecnu.system.service;

import com.ecnu.common.core.domain.AjaxResult;
import com.ecnu.common.core.domain.model.LoginUser;
import com.ecnu.common.core.page.PageDomain;
import com.ecnu.common.core.page.TableDataInfo;
import com.ecnu.system.domain.ProjectStageMission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ecnu.system.domain.dto.ProjectResultDTO;
import com.ecnu.system.domain.dto.StageMissionDTO;
import com.ecnu.system.domain.vo.ProjectStageMissionVO;
import com.fasterxml.jackson.core.JsonProcessingException;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * ecnu_活动_阶段任务表 服务类
 * </p>
 *
 * @author zdn
 * @since 2025-03-24
 */
public interface IProjectStageMissionService extends IService<ProjectStageMission> {

    AjaxResult del(String id);

    AjaxResult infoById(String id, String userId);

    AjaxResult edit(StageMissionDTO dto, LoginUser loginUser) throws JsonProcessingException;

    TableDataInfo listByProId(ProjectResultDTO proId, LoginUser loginUser);

    AjaxResult getStatisticList(String missionId,  String proId, LoginUser loginUser);

    TableDataInfo getListForUser(String missionId, String proId, PageDomain domain, LoginUser loginUser);

    AjaxResult briefById(String id, Long userId);

    TableDataInfo adminListByProId(ProjectResultDTO dto, LoginUser loginUser);

    List<ProjectStageMissionVO> selectEvaluateList(String userId, String projectId, LoginUser loginUser);

    AjaxResult selectStageList(String userId, String stageId, LoginUser loginUser);

    List<ProjectStageMission> selectMissionList(String userId, String projectId, LoginUser loginUser);

    AjaxResult statisticsOutcome(String id, LoginUser loginUser);

    AjaxResult selectUserList(LoginUser loginUser, String missionId, String proId, String userId);

    AjaxResult infoList(String id, LoginUser loginUser);

    AjaxResult getCertificate(String proId, LoginUser loginUser) throws IOException;
}
